package cn.stylefeng.guns.modular.business.frequency.orderpayrecord.model.param;

import cn.stylefeng.guns.core.pojo.base.param.BaseParam;

import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * tt_order_pay_record
 *
 * @author yujie
 * @date 2023/05/09 17:16
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class OrderPayRecordParam extends BaseParam {

    /**
     * id
     */
    @NotNull(message = "id不能为空",groups = {edit.class})
    private Long id;

    /**
     * order_id
     */
    @NotNull(message = "order_id不能为空",groups = {add.class,edit.class})
    private Long orderId;

    /**
     * 终端号
     */
    @NotNull(message = "终端号不能为空",groups = {add.class,edit.class})
    private String terminalSn;

    /**
     * 收钱吧唯一订单号
     */
    @NotNull(message = "收钱吧唯一订单号不能为空",groups = {add.class,edit.class})
    private String sn;

    /**
     * 商户订单号
     */
    @NotNull(message = "商户订单号不能为空",groups = {add.class,edit.class})
    private String clientSn;

    /**
     * 支付服务商订单号
     */
    @NotNull(message = "支付服务商订单号不能为空",groups = {add.class,edit.class})
    private String tradeNo;

    /**
     * 流水状态
     */
    @NotNull(message = "流水状态不能为空",groups = {add.class,edit.class})
    private String status;

    /**
     * 订单状态
     */
    @NotNull(message = "订单状态不能为空",groups = {add.class,edit.class})
    private String orderStatus;

    /**
     * 支付方式
     */
    @NotNull(message = "支付方式不能为空",groups = {add.class,edit.class})
    private String payway;

    /**
     * 二级支付方式
     */
    @NotNull(message = "二级支付方式不能为空",groups = {add.class,edit.class})
    private String subPayway;

    /**
     * 付款人ID
     */
    @NotNull(message = "付款人ID不能为空",groups = {add.class,edit.class})
    private String payerUid;

    /**
     * 付款人账号
     */
    @NotNull(message = "付款人账号不能为空",groups = {add.class,edit.class})
    private String payerLogin;

    /**
     * 交易总额
     */
    @NotNull(message = "交易总额不能为空",groups = {add.class,edit.class})
    private String totalAmount;

    /**
     * 实收金额
     */
    @NotNull(message = "实收金额不能为空",groups = {add.class,edit.class})
    private String netAmount;

    /**
     * 交易概述
     */
    @NotNull(message = "交易概述不能为空",groups = {add.class,edit.class})
    private String subject;

    /**
     * 付款动作在收钱吧的完成时间
     */
    @NotNull(message = "付款动作在收钱吧的完成时间不能为空",groups = {add.class,edit.class})
    private String finishTime;

    /**
     * 付款动作在支付服务商的完成时间
     */
    @NotNull(message = "付款动作在支付服务商的完成时间不能为空",groups = {add.class,edit.class})
    private String channelFinishTime;

    /**
     * 操作员
     */
    @NotNull(message = "操作员不能为空",groups = {add.class,edit.class})
    private String operator;

    /**
     * 反射参数
     */
    @NotNull(message = "反射参数不能为空",groups = {add.class,edit.class})
    private String reflect;

    /**
     * 活动优惠
     */
    @NotNull(message = "活动优惠不能为空",groups = {add.class,edit.class})
    private String paymentList;

    /**
     * create_time
     */
    private Date createTime;

}
